From: Matthias Clasen Date: Sun, 5 Jun 2016 23:36:36 +0000 (-0400) Subject: viewport: Free gadgets in finalize X-Git-Tag: archive/raspbian/3.24.39-1+rpi1~1^2~65^2~39^2~1631 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=c8cab6a79ae9adbfc34b2a73e95c553d7980f39e;p=gtk%2B3.0.git viewport: Free gadgets in finalize This is the right place for this. --- diff --git a/gtk/gtkviewport.c b/gtk/gtkviewport.c index 088951487e..a5487ffc70 100644 --- a/gtk/gtkviewport.c +++ b/gtk/gtkviewport.c @@ -103,6 +103,7 @@ static void gtk_viewport_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec); +static void gtk_viewport_finalize (GObject *object); static void gtk_viewport_destroy (GtkWidget *widget); static void gtk_viewport_realize (GtkWidget *widget); static void gtk_viewport_unrealize (GtkWidget *widget); @@ -374,6 +375,7 @@ gtk_viewport_class_init (GtkViewportClass *class) gobject_class->set_property = gtk_viewport_set_property; gobject_class->get_property = gtk_viewport_get_property; + gobject_class->finalize = gtk_viewport_finalize; widget_class->destroy = gtk_viewport_destroy; widget_class->realize = gtk_viewport_realize; @@ -575,13 +577,22 @@ gtk_viewport_destroy (GtkWidget *widget) viewport_disconnect_adjustment (viewport, GTK_ORIENTATION_HORIZONTAL); viewport_disconnect_adjustment (viewport, GTK_ORIENTATION_VERTICAL); - g_clear_object (&priv->gadget); - GTK_WIDGET_CLASS (gtk_viewport_parent_class)->destroy (widget); g_clear_pointer (&priv->pixel_cache, _gtk_pixel_cache_free); } +static void +gtk_viewport_finalize (GObject *object) +{ + GtkViewport *viewport = GTK_VIEWPORT (object); + GtkViewportPrivate *priv = viewport->priv; + + g_clear_object (&priv->gadget); + + G_OBJECT_CLASS (gtk_viewport_parent_class)->finalize (object); +} + /** * gtk_viewport_get_hadjustment: * @viewport: a #GtkViewport.